A programmable HVAC controller (which may or may not include all of the features of a thermostat) is designed to adjust the temperature according to a series of programmed settings (sometimes called “setbacks”) that take effect at different times of the day. In recent years, programmable HVAC controllers have become increasingly popular, as their use may result in energy savings of up to 30%. To achieve this performance, programmable HVAC controllers reduce the amount of heating/cooling provided by the heating, ventilating and air conditioning (HVAC) system responsible for conditioning the air within a space at propitious times. For example, during the cooling season, a programmable HVAC controller used in a home may be programmed to allow the temperature in the house to rise during the workday when no one is home but begin cooling the house before the occupants arrive, thereby allowing the house to be cooled down to the appropriate temperature setting upon the arrival of the occupants while saving energy during peak outdoor temperatures without sacrificing the occupants' comfort. Conversely, during the heating season, the programmable HVAC controller may be programmed to allow the temperature in the house to drop when the house is unoccupied during the day and also at night after all occupants have gone to bed and re-heating the house prior to the occupants arriving home in the evening or waking up in the morning.
A basic programmable HVAC controller implements a single program with two periods of time (a warmer period and a cooler period) that run every day. More sophisticated programmable HVAC controllers allow four (or more) warm and/or cool periods, commonly referred to as “wake,” “leave,” “return” and “sleep” times, to be set each day, each of which may be set to a unique temperature. Today, most programming of settings is done at a user interface of the controller and with reference to a clock internal to the controller or the HVAC system as a whole.